package com.uade.magicCompany.entities;


import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToOne;
import javax.persistence.Transient;

import com.uade.magicCompany.model.Entrada;
import com.uade.magicCompany.model.Parque;
import com.uade.magicCompany.model.Usuario;

@Entity
public class EntradaEntity {

	@Id
	@Column(name = "entradaEntity_id")
	private Long id;

	private String fechaEmision;

	private String fechaVencimiento;

	private String estado;

	@ManyToOne
	@JoinColumn(name="parqueEntity_id")	
	private ParqueEntity parque;

	@OneToOne
	@JoinColumn(name="usuarioEntity_id")
	private UsuarioEntity usuario;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public String getFechaEmision() {
		return fechaEmision;
	}

	public void setFechaEmision(String fechaEmision) {
		this.fechaEmision = fechaEmision;
	}

	public String getFechaVencimiento() {
		return fechaVencimiento;
	}

	public void setFechaVencimiento(String fechaVencimiento) {
		this.fechaVencimiento = fechaVencimiento;
	}

	public String getEstado() {
		return estado;
	}

	public void setEstado(String estado) {
		this.estado = estado;
	}

	public ParqueEntity getParque() {
		return parque;
	}

	public void setParque(ParqueEntity parque) {
		this.parque = parque;
	}

	public UsuarioEntity getUsuario() {
		return usuario;
	}

	public void setUsuario(UsuarioEntity usuario) {
		this.usuario = usuario;
	}

	@Transient
	public Entrada getEntrada() {
		Parque parque = new Parque(getParque().getNombre(), getParque().getNombre(), null);
		Usuario usuario = new Usuario();
		usuario.setId(getUsuario().getId());
		usuario.setNombre(getUsuario().getNombre());
		usuario.setNacionalidad(getUsuario().getNacionalidad());
		Entrada entrada = new Entrada(getId(), getFechaEmision(),
				getFechaVencimiento(), getEstado(), parque, usuario);
		return entrada;
	}
}
